<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SPHinXsys: SPH::SPHBody Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SPHinXsys
   &#160;<span id="projectnumber">alpha version</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespace_s_p_h.html">SPH</a></li><li class="navelem"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html">SPHBody</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="class_s_p_h_1_1_s_p_h_body-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">SPH::SPHBody Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="class_s_p_h_1_1_s_p_h_body.html" title="SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...">SPHBody</a> is a base body with basic data and functions. Its derived class can be a real fluid body, a real deformable solid body, a static or moving solid body or a fictitious body. Note that only real bodies have cell linked list.  
 <a href="class_s_p_h_1_1_s_p_h_body.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="base__body_8h_source.html">base_body.h</a>&gt;</code></p>

<p>Inherited by <a class="el" href="class_s_p_h_1_1_fictitious_body.html">SPH::FictitiousBody</a>, and <a class="el" href="class_s_p_h_1_1_real_body.html">SPH::RealBody</a>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af5b7b25eda789338d9ebf02f85b7b13c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#af5b7b25eda789338d9ebf02f85b7b13c">SPHBody</a> (<a class="el" href="class_s_p_h_1_1_s_p_h_system.html">SPHSystem</a> &amp;sph_system, string body_name, <a class="el" href="classint.html">int</a> refinement_level, Real smoothing_length_ratio, <a class="el" href="class_particles_generator_ops.html">ParticlesGeneratorOps</a> op)</td></tr>
<tr class="memdesc:af5b7b25eda789338d9ebf02f85b7b13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor of <a class="el" href="class_s_p_h_1_1_s_p_h_body.html" title="SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...">SPHBody</a>.  <a href="#af5b7b25eda789338d9ebf02f85b7b13c">More...</a><br /></td></tr>
<tr class="separator:af5b7b25eda789338d9ebf02f85b7b13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76cf8eb34f36cd098f567268cc1c4354"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a76cf8eb34f36cd098f567268cc1c4354">GetBodyName</a> ()</td></tr>
<tr class="separator:a76cf8eb34f36cd098f567268cc1c4354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bfd29ad10cf4ad92ad8df355b869d0a"><td class="memItemLeft" align="right" valign="top"><a id="a1bfd29ad10cf4ad92ad8df355b869d0a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setNewlyUpdated</b> ()</td></tr>
<tr class="separator:a1bfd29ad10cf4ad92ad8df355b869d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88a3deaf4341a2595a1312d29f1be1a5"><td class="memItemLeft" align="right" valign="top"><a id="a88a3deaf4341a2595a1312d29f1be1a5"></a>
<a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><b>checkNewlyUpdated</b> ()</td></tr>
<tr class="separator:a88a3deaf4341a2595a1312d29f1be1a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec10e3f7b6635346e1a87cb9d28e0c00"><td class="memItemLeft" align="right" valign="top"><a id="aec10e3f7b6635346e1a87cb9d28e0c00"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setNotNewlyUpdated</b> ()</td></tr>
<tr class="separator:aec10e3f7b6635346e1a87cb9d28e0c00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac17b16899b86299f2437d2e38a9ba25e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_p_h_1_1_complex_shape.html">ComplexShape</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#ac17b16899b86299f2437d2e38a9ba25e">getBodyShape</a> ()</td></tr>
<tr class="separator:ac17b16899b86299f2437d2e38a9ba25e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fa0d9f5189c1ed5206f144bae42507e"><td class="memItemLeft" align="right" valign="top"><a id="a5fa0d9f5189c1ed5206f144bae42507e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setBodyLowerBound</b> (Vecd lower_bound)</td></tr>
<tr class="separator:a5fa0d9f5189c1ed5206f144bae42507e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf55c4e2e5da106c38bf855922ad6003"><td class="memItemLeft" align="right" valign="top"><a id="aaf55c4e2e5da106c38bf855922ad6003"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setBodyUpperBound</b> (Vecd upper_bound)</td></tr>
<tr class="separator:aaf55c4e2e5da106c38bf855922ad6003"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41c8a9a87b913d43dcec836e4be331a4"><td class="memItemLeft" align="right" valign="top"><a id="a41c8a9a87b913d43dcec836e4be331a4"></a>
Vecd&#160;</td><td class="memItemRight" valign="bottom"><b>getBodyLowerBound</b> ()</td></tr>
<tr class="separator:a41c8a9a87b913d43dcec836e4be331a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6e6e2b5242a338fa8c9c195414783d6"><td class="memItemLeft" align="right" valign="top"><a id="ab6e6e2b5242a338fa8c9c195414783d6"></a>
Vecd&#160;</td><td class="memItemRight" valign="bottom"><b>getBodyUpperBound</b> ()</td></tr>
<tr class="separator:ab6e6e2b5242a338fa8c9c195414783d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a011642b082a8ee5c51c70d6e9a21c1af"><td class="memItemLeft" align="right" valign="top"><a id="a011642b082a8ee5c51c70d6e9a21c1af"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>getSPHSystemBound</b> (Vecd &amp;system_lower_bound, Vecd &amp;system_uppwer_bound)</td></tr>
<tr class="separator:a011642b082a8ee5c51c70d6e9a21c1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5864b78f5eed6fdbfbff12df6102fa01"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a5864b78f5eed6fdbfbff12df6102fa01">addLevelsetMesh</a> (Real mesh_size_ratio=4.0)</td></tr>
<tr class="separator:a5864b78f5eed6fdbfbff12df6102fa01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2d6f2ddf5794412331b459a37270f9e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#ad2d6f2ddf5794412331b459a37270f9e">AllocateMemoryCellLinkedList</a> ()=0</td></tr>
<tr class="separator:ad2d6f2ddf5794412331b459a37270f9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51791c69c7433295890619062c4af76b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a51791c69c7433295890619062c4af76b">UpdateCellLinkedList</a> ()=0</td></tr>
<tr class="separator:a51791c69c7433295890619062c4af76b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec265458c4bb941b19698f24d280089c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#aec265458c4bb941b19698f24d280089c">AllocateConfigurationMemoriesForBodyBuffer</a> ()</td></tr>
<tr class="separator:aec265458c4bb941b19698f24d280089c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a903bb7fb6b8051a51dbc4e382fc1e9c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a903bb7fb6b8051a51dbc4e382fc1e9c8">checkBodyShapeContain</a> (Vecd pnt)</td></tr>
<tr class="separator:a903bb7fb6b8051a51dbc4e382fc1e9c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a570a03591b16004dfd54acb88cb03c0b"><td class="memItemLeft" align="right" valign="top">Vecd&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a570a03591b16004dfd54acb88cb03c0b">ClosestPointOnBodySurface</a> (Vecd input_pnt)</td></tr>
<tr class="separator:a570a03591b16004dfd54acb88cb03c0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e8de50196bb55bbfa934e84bd8f6721"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a2e8de50196bb55bbfa934e84bd8f6721">findBodyShapeBounds</a> (Vecd &amp;lower_bound, Vecd &amp;upper_bound)</td></tr>
<tr class="memdesc:a2e8de50196bb55bbfa934e84bd8f6721"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the lower and upper bounds of the body.  <a href="#a2e8de50196bb55bbfa934e84bd8f6721">More...</a><br /></td></tr>
<tr class="separator:a2e8de50196bb55bbfa934e84bd8f6721"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad54dd32956899a469fb90b39b13bd072"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#ad54dd32956899a469fb90b39b13bd072">WriteParticlesToVtuFile</a> (ofstream &amp;output_file)</td></tr>
<tr class="separator:ad54dd32956899a469fb90b39b13bd072"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bc3f1d222bf9a1fd0ec5a40b02b766f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a6bc3f1d222bf9a1fd0ec5a40b02b766f">WriteParticlesToPltFile</a> (ofstream &amp;output_file)</td></tr>
<tr class="separator:a6bc3f1d222bf9a1fd0ec5a40b02b766f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1a3b1dd08a06f3cf5735a9b33676fe4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#ad1a3b1dd08a06f3cf5735a9b33676fe4">WriteParticlesToXmlForRestart</a> (std::string &amp;filefullpath)</td></tr>
<tr class="separator:ad1a3b1dd08a06f3cf5735a9b33676fe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69068098fe0a015fa20ef72c673ea3d8"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a69068098fe0a015fa20ef72c673ea3d8">ReadParticlesFromXmlForRestart</a> (std::string &amp;filefullpath)</td></tr>
<tr class="separator:a69068098fe0a015fa20ef72c673ea3d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab98ce04edd3e05ab1085d051b9993f5b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#ab98ce04edd3e05ab1085d051b9993f5b">WriteToXmlForReloadParticle</a> (std::string &amp;filefullpath)</td></tr>
<tr class="separator:ab98ce04edd3e05ab1085d051b9993f5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ffb2533405a276fc8db72151bda6678"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a6ffb2533405a276fc8db72151bda6678">ReadFromXmlForReloadParticle</a> (std::string &amp;filefullpath)</td></tr>
<tr class="separator:a6ffb2533405a276fc8db72151bda6678"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0be27f3187e768ec3d758c74bce68b2f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_s_p_h_1_1_s_p_h_body.html">SPHBody</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a0be27f3187e768ec3d758c74bce68b2f">PointToThisObject</a> ()</td></tr>
<tr class="separator:a0be27f3187e768ec3d758c74bce68b2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a0a625a4fc0b800a2211ccc3e5f239274"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classint.html">int</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a0a625a4fc0b800a2211ccc3e5f239274">refinement_level_</a></td></tr>
<tr class="separator:a0a625a4fc0b800a2211ccc3e5f239274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcea67d3103c632fd96fbea014b69cbf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_p_h_1_1_kernel.html">Kernel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#adcea67d3103c632fd96fbea014b69cbf">kernel_</a></td></tr>
<tr class="separator:adcea67d3103c632fd96fbea014b69cbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1693824e4663ab1d42d2c89f167de7f1"><td class="memItemLeft" align="right" valign="top">Real&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a1693824e4663ab1d42d2c89f167de7f1">particle_spacing_</a></td></tr>
<tr class="separator:a1693824e4663ab1d42d2c89f167de7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab6ade081b3bf9a260dda2d980b5a98f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classsize__t.html">size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#aab6ade081b3bf9a260dda2d980b5a98f">number_of_particles_</a></td></tr>
<tr class="separator:aab6ade081b3bf9a260dda2d980b5a98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc8f9cc70f735cfe72e3c5571fdd2201"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_p_h_1_1_base_particles.html">BaseParticles</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#adc8f9cc70f735cfe72e3c5571fdd2201">base_particles_</a></td></tr>
<tr class="separator:adc8f9cc70f735cfe72e3c5571fdd2201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eaf64eec0d93e8af4ba68fb8a4f3393"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html">BaseMeshCellLinkedList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a2eaf64eec0d93e8af4ba68fb8a4f3393">base_mesh_cell_linked_list_</a></td></tr>
<tr class="separator:a2eaf64eec0d93e8af4ba68fb8a4f3393"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07225063a8732945f536841f71253019"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_particles_generator_ops.html">ParticlesGeneratorOps</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a07225063a8732945f536841f71253019">particle_generator_op_</a></td></tr>
<tr class="separator:a07225063a8732945f536841f71253019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8db0d4887412e2336930f4f63d7a7e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespace_s_p_h.html#aae0891ff7d5c75f9bf4333e5e0e0fe98">PositionsAndVolumes</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#ae8db0d4887412e2336930f4f63d7a7e2">body_input_points_volumes_</a></td></tr>
<tr class="separator:ae8db0d4887412e2336930f4f63d7a7e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a306c400ad9b4039df27758dd1560a55b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_p_h_1_1_base_level_set.html">BaseLevelSet</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a306c400ad9b4039df27758dd1560a55b">levelset_mesh_</a></td></tr>
<tr class="separator:a306c400ad9b4039df27758dd1560a55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adda7b1f83a13057cc2526315ba7b87cb"><td class="memItemLeft" align="right" valign="top"><a id="adda7b1f83a13057cc2526315ba7b87cb"></a>
<a class="el" href="namespace_s_p_h.html#ac592bbe202be73decfcbfe8201484ffa">SplitCellLists</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#adda7b1f83a13057cc2526315ba7b87cb">split_cell_lists_</a></td></tr>
<tr class="memdesc:adda7b1f83a13057cc2526315ba7b87cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">particle by cells lists is for parallel splitting algorithm. All particles in each cell are collected together. If two partiles each belongs two different cell entries, they have no interaction because they are too far. <br /></td></tr>
<tr class="separator:adda7b1f83a13057cc2526315ba7b87cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add47d67ae81be7a97ece4bcb2fd573a1"><td class="memItemLeft" align="right" valign="top">StdVec&lt; <a class="el" href="class_s_p_h_1_1_s_p_h_body_base_relation.html">SPHBodyBaseRelation</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#add47d67ae81be7a97ece4bcb2fd573a1">body_relations_</a></td></tr>
<tr class="separator:add47d67ae81be7a97ece4bcb2fd573a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a4c5d6538df8e89d2b69a76c4951be1b6"><td class="memItemLeft" align="right" valign="top">Real&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a4c5d6538df8e89d2b69a76c4951be1b6">RefinementLevelToParticleSpacing</a> ()</td></tr>
<tr class="separator:a4c5d6538df8e89d2b69a76c4951be1b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac042502ee0fbdd55db8a5f81343907b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_p_h_1_1_kernel.html">Kernel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#ac042502ee0fbdd55db8a5f81343907b3">GenerateAKernel</a> (Real smoothing_length)</td></tr>
<tr class="separator:ac042502ee0fbdd55db8a5f81343907b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a40dddf776df0ad35c0206f75d167f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a7a40dddf776df0ad35c0206f75d167f4">ReplaceKernelFunction</a> (<a class="el" href="class_s_p_h_1_1_kernel.html">Kernel</a> *kernel)</td></tr>
<tr class="separator:a7a40dddf776df0ad35c0206f75d167f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:acafe8d506e0bfd7c74143cd9ed1401b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_p_h_1_1_s_p_h_system.html">SPHSystem</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#acafe8d506e0bfd7c74143cd9ed1401b7">sph_system_</a></td></tr>
<tr class="separator:acafe8d506e0bfd7c74143cd9ed1401b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90b19fb964661d302ed08652dfb9d4c2"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a90b19fb964661d302ed08652dfb9d4c2">body_name_</a></td></tr>
<tr class="separator:a90b19fb964661d302ed08652dfb9d4c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a52151b399284b6657585619d71db0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a6a52151b399284b6657585619d71db0d">newly_updated_</a></td></tr>
<tr class="separator:a6a52151b399284b6657585619d71db0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4dcce0a73ba89a2fd9a95ca68216ca6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_s_p_h_1_1_complex_shape.html">ComplexShape</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#aa4dcce0a73ba89a2fd9a95ca68216ca6">body_shape_</a></td></tr>
<tr class="separator:aa4dcce0a73ba89a2fd9a95ca68216ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a475cbb5268106b74e76d71fe5f41a28c"><td class="memItemLeft" align="right" valign="top">Real&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a475cbb5268106b74e76d71fe5f41a28c">smoothing_length_</a></td></tr>
<tr class="separator:a475cbb5268106b74e76d71fe5f41a28c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc4e254e90d072edb26e90007f806215"><td class="memItemLeft" align="right" valign="top">Vecd&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#acc4e254e90d072edb26e90007f806215">body_lower_bound_</a></td></tr>
<tr class="separator:acc4e254e90d072edb26e90007f806215"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bc42a8f5d7709c48aee5bf7862fe7b3"><td class="memItemLeft" align="right" valign="top"><a id="a4bc42a8f5d7709c48aee5bf7862fe7b3"></a>
Vecd&#160;</td><td class="memItemRight" valign="bottom"><b>body_upper_bound_</b></td></tr>
<tr class="separator:a4bc42a8f5d7709c48aee5bf7862fe7b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a981e4ab5e8b6dc54813fbf8f38bb2ff3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html#a981e4ab5e8b6dc54813fbf8f38bb2ff3">prescribed_body_bounds_</a></td></tr>
<tr class="separator:a981e4ab5e8b6dc54813fbf8f38bb2ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="class_s_p_h_1_1_s_p_h_body.html" title="SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...">SPHBody</a> is a base body with basic data and functions. Its derived class can be a real fluid body, a real deformable solid body, a static or moving solid body or a fictitious body. Note that only real bodies have cell linked list. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af5b7b25eda789338d9ebf02f85b7b13c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5b7b25eda789338d9ebf02f85b7b13c">&#9670;&nbsp;</a></span>SPHBody()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">SPH::SPHBody::SPHBody </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_s_p_h_1_1_s_p_h_system.html">SPHSystem</a> &amp;&#160;</td>
          <td class="paramname"><em>sph_system</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>body_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classint.html">int</a>&#160;</td>
          <td class="paramname"><em>refinement_level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Real&#160;</td>
          <td class="paramname"><em>smoothing_length_ratio</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_particles_generator_ops.html">ParticlesGeneratorOps</a>&#160;</td>
          <td class="paramname"><em>op</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor of <a class="el" href="class_s_p_h_1_1_s_p_h_body.html" title="SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...">SPHBody</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sph_system</td><td><a class="el" href="class_s_p_h_1_1_s_p_h_system.html" title="The SPH system managing objects in the system level. ">SPHSystem</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">body_name</td><td>Name of Body. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">refinement_level</td><td>Refinement level of this body. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">smoothing_length_ratio</td><td>The ratio between smoothinglength to particle spacing. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">op</td><td>Particle generator manner. </td></tr>
  </table>
  </dd>
</dl>
<p>I will use concurrent vector here later after tests. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a5864b78f5eed6fdbfbff12df6102fa01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5864b78f5eed6fdbfbff12df6102fa01">&#9670;&nbsp;</a></span>addLevelsetMesh()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::addLevelsetMesh </td>
          <td>(</td>
          <td class="paramtype">Real&#160;</td>
          <td class="paramname"><em>mesh_size_ratio</em> = <code>4.0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>add levelset mesh </p>
<p>levelset mesh. <br />
<br />
<br />
<br />
<br />
 &lt; body pointer. <br />
<br />
<br />
<br />
 &lt; Lower bound. <br />
<br />
<br />
 &lt; Upper bound. <br />
<br />
 &lt; <a class="el" href="class_s_p_h_1_1_mesh.html" title="Abstract base class for defining basic mesh properties. The mesh is proposed for several functions...">Mesh</a> spacing. <br />
 &lt; Buffer size. </p>

</div>
</div>
<a id="aec265458c4bb941b19698f24d280089c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec265458c4bb941b19698f24d280089c">&#9670;&nbsp;</a></span>AllocateConfigurationMemoriesForBodyBuffer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::AllocateConfigurationMemoriesForBodyBuffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Allocate extra configuration memories for body buffer particles. </p>

</div>
</div>
<a id="ad2d6f2ddf5794412331b459a37270f9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2d6f2ddf5794412331b459a37270f9e">&#9670;&nbsp;</a></span>AllocateMemoryCellLinkedList()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void SPH::SPHBody::AllocateMemoryCellLinkedList </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Allocate memory for cell linked list. </p>

<p>Implemented in <a class="el" href="class_s_p_h_1_1_fictitious_body.html#a35069c8ae0c3d8622fc47d076cc0bc3e">SPH::FictitiousBody</a>, and <a class="el" href="class_s_p_h_1_1_real_body.html#aed77995462b7da1e009a33f3f3dbe3de">SPH::RealBody</a>.</p>

</div>
</div>
<a id="a903bb7fb6b8051a51dbc4e382fc1e9c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a903bb7fb6b8051a51dbc4e382fc1e9c8">&#9670;&nbsp;</a></span>checkBodyShapeContain()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classbool.html">bool</a> SPH::SPHBody::checkBodyShapeContain </td>
          <td>(</td>
          <td class="paramtype">Vecd&#160;</td>
          <td class="paramname"><em>pnt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check wether a point within the geometry of this body. </p><dl class="section return"><dt>Returns</dt><dd>TRUE if a point within body's region otherwise FALSE. </dd></dl>

</div>
</div>
<a id="a570a03591b16004dfd54acb88cb03c0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a570a03591b16004dfd54acb88cb03c0b">&#9670;&nbsp;</a></span>ClosestPointOnBodySurface()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Vecd SPH::SPHBody::ClosestPointOnBodySurface </td>
          <td>(</td>
          <td class="paramtype">Vecd&#160;</td>
          <td class="paramname"><em>input_pnt</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Find closest point from a given point to body surface. </p>

</div>
</div>
<a id="a2e8de50196bb55bbfa934e84bd8f6721"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e8de50196bb55bbfa934e84bd8f6721">&#9670;&nbsp;</a></span>findBodyShapeBounds()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::findBodyShapeBounds </td>
          <td>(</td>
          <td class="paramtype">Vecd &amp;&#160;</td>
          <td class="paramname"><em>lower_bound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Vecd &amp;&#160;</td>
          <td class="paramname"><em>upper_bound</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find the lower and upper bounds of the body. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">lower_bound</td><td>Lower bound of this body. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">upper_bound</td><td>Upper bound of this body. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ac042502ee0fbdd55db8a5f81343907b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac042502ee0fbdd55db8a5f81343907b3">&#9670;&nbsp;</a></span>GenerateAKernel()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_kernel.html">Kernel</a> * SPH::SPHBody::GenerateAKernel </td>
          <td>(</td>
          <td class="paramtype">Real&#160;</td>
          <td class="paramname"><em>smoothing_length</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Generate a kernel. </p>

</div>
</div>
<a id="a76cf8eb34f36cd098f567268cc1c4354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76cf8eb34f36cd098f567268cc1c4354">&#9670;&nbsp;</a></span>GetBodyName()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">string SPH::SPHBody::GetBodyName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get the name of this body for out file name. </p>

</div>
</div>
<a id="ac17b16899b86299f2437d2e38a9ba25e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac17b16899b86299f2437d2e38a9ba25e">&#9670;&nbsp;</a></span>getBodyShape()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_complex_shape.html">ComplexShape</a>&amp; SPH::SPHBody::getBodyShape </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the name of this body for out file name. </p>

</div>
</div>
<a id="a0be27f3187e768ec3d758c74bce68b2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0be27f3187e768ec3d758c74bce68b2f">&#9670;&nbsp;</a></span>PointToThisObject()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_s_p_h_body.html">SPHBody</a> * SPH::SPHBody::PointToThisObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The pointer to derived class object. </p>

<p>Reimplemented in <a class="el" href="class_s_p_h_1_1_fictitious_body.html#a90607000f445c2c5852600841499656e">SPH::FictitiousBody</a>, <a class="el" href="class_s_p_h_1_1_real_body.html#a39e2837ee08e0a4298ff725477b72442">SPH::RealBody</a>, <a class="el" href="class_s_p_h_1_1_fluid_body.html#a34b9111e7aaefe5bc1fc9e3a56889af7">SPH::FluidBody</a>, and <a class="el" href="class_s_p_h_1_1_solid_body.html#ad4ee01c2a69ac51d0b29c5de316b29f6">SPH::SolidBody</a>.</p>

</div>
</div>
<a id="a6ffb2533405a276fc8db72151bda6678"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ffb2533405a276fc8db72151bda6678">&#9670;&nbsp;</a></span>ReadFromXmlForReloadParticle()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::ReadFromXmlForReloadParticle </td>
          <td>(</td>
          <td class="paramtype">std::string &amp;&#160;</td>
          <td class="paramname"><em>filefullpath</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Reload particle position and volume from XML files. </p>

</div>
</div>
<a id="a69068098fe0a015fa20ef72c673ea3d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69068098fe0a015fa20ef72c673ea3d8">&#9670;&nbsp;</a></span>ReadParticlesFromXmlForRestart()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::ReadParticlesFromXmlForRestart </td>
          <td>(</td>
          <td class="paramtype">std::string &amp;&#160;</td>
          <td class="paramname"><em>filefullpath</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Read particle data in XML file for restart simulation. </p>

</div>
</div>
<a id="a4c5d6538df8e89d2b69a76c4951be1b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c5d6538df8e89d2b69a76c4951be1b6">&#9670;&nbsp;</a></span>RefinementLevelToParticleSpacing()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Real SPH::SPHBody::RefinementLevelToParticleSpacing </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Computing particle spacing from refinement level. </p>

</div>
</div>
<a id="a7a40dddf776df0ad35c0206f75d167f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a40dddf776df0ad35c0206f75d167f4">&#9670;&nbsp;</a></span>ReplaceKernelFunction()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::ReplaceKernelFunction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_s_p_h_1_1_kernel.html">Kernel</a> *&#160;</td>
          <td class="paramname"><em>kernel</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Change kernel function specific for this body. </p>

</div>
</div>
<a id="a51791c69c7433295890619062c4af76b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51791c69c7433295890619062c4af76b">&#9670;&nbsp;</a></span>UpdateCellLinkedList()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void SPH::SPHBody::UpdateCellLinkedList </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Update cell linked list. </p>

<p>Implemented in <a class="el" href="class_s_p_h_1_1_fictitious_body.html#a0cef2debf8a1efb66f8e7aaf93673529">SPH::FictitiousBody</a>, and <a class="el" href="class_s_p_h_1_1_real_body.html#a62c1c5e51885022794bfe0715128c980">SPH::RealBody</a>.</p>

</div>
</div>
<a id="a6bc3f1d222bf9a1fd0ec5a40b02b766f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bc3f1d222bf9a1fd0ec5a40b02b766f">&#9670;&nbsp;</a></span>WriteParticlesToPltFile()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::WriteParticlesToPltFile </td>
          <td>(</td>
          <td class="paramtype">ofstream &amp;&#160;</td>
          <td class="paramname"><em>output_file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Output particle data in PLT file for visualization in Tecplot. </p>

</div>
</div>
<a id="ad54dd32956899a469fb90b39b13bd072"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad54dd32956899a469fb90b39b13bd072">&#9670;&nbsp;</a></span>WriteParticlesToVtuFile()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::WriteParticlesToVtuFile </td>
          <td>(</td>
          <td class="paramtype">ofstream &amp;&#160;</td>
          <td class="paramname"><em>output_file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Output particle data in VTU file for visualization in Paraview. </p>

</div>
</div>
<a id="ad1a3b1dd08a06f3cf5735a9b33676fe4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1a3b1dd08a06f3cf5735a9b33676fe4">&#9670;&nbsp;</a></span>WriteParticlesToXmlForRestart()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::WriteParticlesToXmlForRestart </td>
          <td>(</td>
          <td class="paramtype">std::string &amp;&#160;</td>
          <td class="paramname"><em>filefullpath</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Output particle data in XML file for restart simulation. </p>

</div>
</div>
<a id="ab98ce04edd3e05ab1085d051b9993f5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab98ce04edd3e05ab1085d051b9993f5b">&#9670;&nbsp;</a></span>WriteToXmlForReloadParticle()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void SPH::SPHBody::WriteToXmlForReloadParticle </td>
          <td>(</td>
          <td class="paramtype">std::string &amp;&#160;</td>
          <td class="paramname"><em>filefullpath</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Output particle position and volume in XML file for reloading particles. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a2eaf64eec0d93e8af4ba68fb8a4f3393"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2eaf64eec0d93e8af4ba68fb8a4f3393">&#9670;&nbsp;</a></span>base_mesh_cell_linked_list_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_base_mesh_cell_linked_list.html">BaseMeshCellLinkedList</a>* SPH::SPHBody::base_mesh_cell_linked_list_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Cell linked mesh of this body. </p>

</div>
</div>
<a id="adc8f9cc70f735cfe72e3c5571fdd2201"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc8f9cc70f735cfe72e3c5571fdd2201">&#9670;&nbsp;</a></span>base_particles_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_base_particles.html">BaseParticles</a>* SPH::SPHBody::base_particles_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Base particles of this body. </p>

</div>
</div>
<a id="ae8db0d4887412e2336930f4f63d7a7e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8db0d4887412e2336930f4f63d7a7e2">&#9670;&nbsp;</a></span>body_input_points_volumes_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespace_s_p_h.html#aae0891ff7d5c75f9bf4333e5e0e0fe98">PositionsAndVolumes</a> SPH::SPHBody::body_input_points_volumes_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>For direct generate particles. </p>

</div>
</div>
<a id="acc4e254e90d072edb26e90007f806215"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc4e254e90d072edb26e90007f806215">&#9670;&nbsp;</a></span>body_lower_bound_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Vecd SPH::SPHBody::body_lower_bound_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Computational domain bounds of the body for boundary conditions. </p>

</div>
</div>
<a id="a90b19fb964661d302ed08652dfb9d4c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90b19fb964661d302ed08652dfb9d4c2">&#9670;&nbsp;</a></span>body_name_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string SPH::SPHBody::body_name_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>name of this body </p>

</div>
</div>
<a id="add47d67ae81be7a97ece4bcb2fd573a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add47d67ae81be7a97ece4bcb2fd573a1">&#9670;&nbsp;</a></span>body_relations_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">StdVec&lt;<a class="el" href="class_s_p_h_1_1_s_p_h_body_base_relation.html">SPHBodyBaseRelation</a>*&gt; SPH::SPHBody::body_relations_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>all contact relations centered from this body </p>

</div>
</div>
<a id="aa4dcce0a73ba89a2fd9a95ca68216ca6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4dcce0a73ba89a2fd9a95ca68216ca6">&#9670;&nbsp;</a></span>body_shape_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_complex_shape.html">ComplexShape</a> SPH::SPHBody::body_shape_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>describe the geometry of the body, static member, so the geometry head file is included. </p>

</div>
</div>
<a id="adcea67d3103c632fd96fbea014b69cbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adcea67d3103c632fd96fbea014b69cbf">&#9670;&nbsp;</a></span>kernel_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_kernel.html">Kernel</a>* SPH::SPHBody::kernel_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>sph kernel function specific to a <a class="el" href="class_s_p_h_1_1_s_p_h_body.html" title="SPHBody is a base body with basic data and functions. Its derived class can be a real fluid body...">SPHBody</a> </p>

</div>
</div>
<a id="a306c400ad9b4039df27758dd1560a55b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a306c400ad9b4039df27758dd1560a55b">&#9670;&nbsp;</a></span>levelset_mesh_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_base_level_set.html">BaseLevelSet</a>* SPH::SPHBody::levelset_mesh_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>narrow bounded levelset mesh. </p>

</div>
</div>
<a id="a6a52151b399284b6657585619d71db0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a52151b399284b6657585619d71db0d">&#9670;&nbsp;</a></span>newly_updated_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classbool.html">bool</a> SPH::SPHBody::newly_updated_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>whether this body is in a newly updated state </p>

</div>
</div>
<a id="aab6ade081b3bf9a260dda2d980b5a98f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab6ade081b3bf9a260dda2d980b5a98f">&#9670;&nbsp;</a></span>number_of_particles_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classsize__t.html">size_t</a> SPH::SPHBody::number_of_particles_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Number of real particles of the body. </p>

</div>
</div>
<a id="a07225063a8732945f536841f71253019"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07225063a8732945f536841f71253019">&#9670;&nbsp;</a></span>particle_generator_op_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_particles_generator_ops.html">ParticlesGeneratorOps</a> SPH::SPHBody::particle_generator_op_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Particle generator manner </p>

</div>
</div>
<a id="a1693824e4663ab1d42d2c89f167de7f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1693824e4663ab1d42d2c89f167de7f1">&#9670;&nbsp;</a></span>particle_spacing_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Real SPH::SPHBody::particle_spacing_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Particle spacing of the body. </p>

</div>
</div>
<a id="a981e4ab5e8b6dc54813fbf8f38bb2ff3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a981e4ab5e8b6dc54813fbf8f38bb2ff3">&#9670;&nbsp;</a></span>prescribed_body_bounds_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classbool.html">bool</a> SPH::SPHBody::prescribed_body_bounds_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Whether the computational domain bound for this body is prescribed. </p>

</div>
</div>
<a id="a0a625a4fc0b800a2211ccc3e5f239274"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a625a4fc0b800a2211ccc3e5f239274">&#9670;&nbsp;</a></span>refinement_level_</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classint.html">int</a> SPH::SPHBody::refinement_level_</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>refinement level of this body </p>

</div>
</div>
<a id="a475cbb5268106b74e76d71fe5f41a28c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a475cbb5268106b74e76d71fe5f41a28c">&#9670;&nbsp;</a></span>smoothing_length_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Real SPH::SPHBody::smoothing_length_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>smoothing length. </p>

</div>
</div>
<a id="acafe8d506e0bfd7c74143cd9ed1401b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acafe8d506e0bfd7c74143cd9ed1401b7">&#9670;&nbsp;</a></span>sph_system_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_s_p_h_1_1_s_p_h_system.html">SPHSystem</a>&amp; SPH::SPHBody::sph_system_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="class_s_p_h_1_1_s_p_h_system.html" title="The SPH system managing objects in the system level. ">SPHSystem</a>. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>SPHINXsys/src/shared/bodies/<a class="el" href="base__body_8h_source.html">base_body.h</a></li>
<li>SPHINXsys/src/shared/bodies/<a class="el" href="base__body_8cpp.html">base_body.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
